Employing static partitioning for data in a shared nothing parallel data processing system, one method of exploiting parallel processing is to partition database tables across the nodes (typically containing one or more processors and associated storage) of the system. This is referred to as "declustering" of the table. If a database table is partitioned across only a subset of the nodes of the system then that table is said to be "partially declustered". While the concepts of declustering and partial declustering are known, no method previously existed for constructing or supporting partially declustered tables in a statically partitioned parallel database system.
Without partial declustering, the information in each table of the parallel database system would need to be spread across the entire parallel database system which could result in significant inefficiency from excess communication overhead as a result of small tables being distributed across a large number of nodes in the parallel database system. This is referred to as "full declustering" and in addition to the above inefficiency does not permit multiple databases to be divided up into groups of nodes that are subsets of the parallel system. It would be desirable in some cases to divide up the parallel database system into a number of groups of nodes, each group being assigned to a particular database with the tables of that particular database being declustered across the particular group of nodes.
Without the ability to perform partial declustering in a parallel database system the user may not have the ability to control the performance and manageability of the parallel database system.